﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Domain;

using System.Web.Configuration;
using Business;

namespace HotelBrisaYArenaAdministrador
{
    public partial class CosultaHabitaciones : System.Web.UI.Page
    {
        LinkedList<TipoHabitacion> tipoHabitaciones = new LinkedList<TipoHabitacion>();
        TipoHabitacionBusiness tipoHabitaBusiness = new TipoHabitacionBusiness(WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());
        HabitacionBusiness habitacionBusiness = new HabitacionBusiness(WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());

        protected void Page_Load(object sender, EventArgs e)
        {
            tipoHabitaciones = tipoHabitaBusiness.ObtenerTiposDeHabitacion();
            if (Page.IsPostBack == false)
            {
                //codigo para cargar el DropDownList
                foreach (TipoHabitacion tipoActual in tipoHabitaciones)
                {
                    ListItem li = new ListItem(tipoActual.Tipo, tipoActual.IdTipoHab.ToString());
                    ddlTipoHab.Items.Add(li);

                }
                ListItem l = new ListItem("General", 1.ToString());
                ddlTipoHab.Items.Add(l);
                ddlTipoHab.SelectedIndex = ddlTipoHab.Items.Count - 1;


            }//fin del if 
        }

        protected void ddlTipoHab_SelectedIndexChanged(object sender, EventArgs e)
        {
            int posicion = Int32.Parse(ddlTipoHab.SelectedItem.Value);
            Console.Write(posicion);
            String valorEntrada = Request["fechaEntrada"];
            String valorSalida = Request["fechaSalida"];
            DateTime fechaHoy = DateTime.Today;
            if (!valorEntrada.Equals("") || !valorSalida.Equals(""))
            {
                DateTime fechaEntrada;
                // fechaEntrada = DateTime.ParseExact(valorEntrada,"yyyy-MM-dd HH:mm tt", null);
                fechaEntrada = Convert.ToDateTime(valorEntrada);
                DateTime fechaSalida;
                fechaSalida = Convert.ToDateTime(valorSalida);
                //   Response.Write(fechaEntrada.Day + "/" + fechaEntrada.Month + "/" + fechaEntrada.Year);
                //Label1.Text = valorEntrada;
                if ((DateTime.Compare(fechaEntrada, fechaSalida) == -1)) {
                // Difference in days, hours, and minutes.
                TimeSpan ts = fechaSalida - fechaEntrada;

                // Difference in days.
                int differenceInDays = ts.Days;

                LinkedList<Habitacion> habitacionesDisp = new LinkedList<Habitacion>();
                LinkedList<Habitacion> habitacionesRetornada = new LinkedList<Habitacion>();

                try
                {
                    //Comprobar el tipo de habitación
                    if (tipoHabitaBusiness.verificaTipoHabitacion(posicion))
                    {
                        habitacionesDisp = habitacionBusiness.ObtenerHabitacionXId(posicion);
                    }
                    else
                    {

                        habitacionesDisp = habitacionBusiness.ObtenerHabitacionGeneral();
                    }
                    habitacionesRetornada = habitacionBusiness.RetornaHabLibres(habitacionesDisp, fechaEntrada, fechaSalida);
                    if (habitacionesRetornada.Count != 0)
                    {
                        foreach (Habitacion habActual in habitacionesRetornada)
                        {
                            float cantidad = habActual.TipoHabitacion.Tarifa * differenceInDays;
                            habActual.TipoHabitacion.Tarifa = cantidad;
                            Repetidor.DataSource = habitacionesRetornada;
                            Repetidor.DataBind();
                        }
                    }
                    else
                    {
                        Label1.Text = "";
                    }
                }
                catch (Exception exc)
                {
                    Label1.Text = "";
                }
                }
                else { Label1.Text = "Verifique las fechas "; }//fin del if      
            }
            else { Label1.Text = "Ingrese valores en las celdas"; }//fin del if  

        }

      
    }
}

//http://www.google.com/insights/search/